
#include "register/tilingdata_base.h"

namespace optiling {
BEGIN_TILING_DATA_DEF(ScatterElementsTilingData)
  TILING_DATA_FIELD_DEF(uint32_t, totalLength);
  TILING_DATA_FIELD_DEF(uint32_t, tileNum);
  TILING_DATA_FIELD_DEF(uint32_t, ALIGN_NUM);
  TILING_DATA_FIELD_DEF(uint32_t, tiling_size);
  TILING_DATA_FIELD_DEF(uint32_t, block_size);
  TILING_DATA_FIELD_DEF(uint32_t, aivNum);
  TILING_DATA_FIELD_DEF(uint32_t, core_size);
  TILING_DATA_FIELD_DEF(uint32_t, core_remain);
  TILING_DATA_FIELD_DEF(uint32_t, lastdim);

  TILING_DATA_FIELD_DEF(uint32_t, var_shape);  //原数据维数
  TILING_DATA_FIELD_DEF(uint32_t, var_bats);   //原数据块数
  TILING_DATA_FIELD_DEF(uint32_t, var_tier);   //原数据层数
  TILING_DATA_FIELD_DEF(uint32_t, var_rows);   //原数据行数
  TILING_DATA_FIELD_DEF(uint32_t, var_cols);   //原数据列数

  TILING_DATA_FIELD_DEF(uint32_t, dim_shape);  //判断维度，1,2,3
  TILING_DATA_FIELD_DEF(uint32_t, loop_h); 
  TILING_DATA_FIELD_DEF(uint32_t, loop_i);    //取各维度的数目，比如(i,j,k) =（2,3,3）
  TILING_DATA_FIELD_DEF(uint32_t, loop_j);
  TILING_DATA_FIELD_DEF(uint32_t, loop_k);
  TILING_DATA_FIELD_DEF(uint32_t, strcase);
  
  TILING_DATA_FIELD_DEF(int, axis);
  // TILING_DATA_FIELD_DEF(String, reduce);

END_TILING_DATA_DEF;

REGISTER_TILING_DATA_CLASS(ScatterElements, ScatterElementsTilingData)
}
